Collision handling by a robot

ABSTRACT

The invention relates to a method of collision handling for a robot with a kinematic chain structure comprising at least one kinematic chain, wherein the kinematic chain structure includes: a base, links, joints connecting the links, actuators and at least one end-effector, a sensor S distal.i  in the most distal link of at least one of the kinematic chains for measuring/estimating force/torque, and sensors S i  for measuring/estimating proprioceptive data, wherein the sensors S i  are arbitrarily positioned along the kinematic chain structure, the method including: providing a model describing the dynamics of the robot; measuring and/or estimating with sensor S distal.i  force/torque F ext,S.distal.i  in the most distal link of at least one of the kinematic chains; measuring and/or estimating with the sensors S i  proprioceptive data: base and robot generalized coordinates q(t) and their time derivative {dot over (q)}(t), generalized joint motor forces τ m , external forces F S , a base orientation φ B (t) and a base velocity {dot over (x)}(t) B ; generating an estimate {circumflex over (τ)} ∈  of the generalized external forces τ ext  with a momentum observer based on at least one of the proprioceptive data and the model; generating an estimate {umlaut over ({circumflex over (q)})}(t) of a second derivative of base and robot generalized coordinates {umlaut over (q)}(t), based on {circumflex over (τ)} ∈  and τ m ; estimating a Cartesian acceleration {umlaut over ({circumflex over (x)})} D  of point D on the kinematic chain structure based on {umlaut over ({circumflex over (q)})}(t); compensating the external forces F D  for rigid body dynamics effects based on {umlaut over ({circumflex over (x)})} D  and for gravity effects to obtain an estimated external wrench {circumflex over (F)} ext,S.i ; compensating {circumflex over (τ)} ∈  for the Jacobian J S.distal.i   T  transformed F ext,S.distal.i  to obtain an estimation {circumflex over (τ)} ext,col  of generalized joint forces originating from unexpected collisions; detecting a collision based on given thresholds τ thresh  and F S.i,thresh  if {circumflex over (τ)} ext,col &gt;τ thresh  and/or if {circumflex over (F)} ext,S.i &gt;F S.i,thresh .

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is the U.S. National Phase of PCT/EP2018/064075, filed on 29 May 2018, which claims priority to German Patent Application No. 10 2017 005 080.5, filed on 29 May 2017, the entire contents of which are incorporated herein by reference.

BACKGROUND Field

The invention relates to a method of collision handling for a robot and to a robot designed and set up to carry out the method.

Related Art

Humanoid robots executing manipulation tasks are usually in contact with their environment at several contact points. The robot is in contact with its environment at the feet via ground contacts and the hands for executing a desired manipulation task. In order to correctly react to undesired collisions, such as an unwanted contact with a colliding object at the knee, the robot has to have the ability to detect collisions, analyze the contact situation(s) and react accordingly. In summary, the collision has to be detected, isolated and identified. Several approaches to the problem of collision detection for manipulators exist. In publications [22] and [19], a model based reference torque is compared to the actuator torque measured via motor currents. Publication [12] uses a similar approach with an adaptive impedance controller. Publication [20] observes disturbance torques on a per joint basis, ignoring the coupling between the joints. All of the above methods employ time invariant thresholds for collision detection. An approach with time variant thresholds based on the estimated modeling error can be found in publications [17] and [16], where a generalized momentum based observer is used to estimate the disturbance torques in the joints and bounds for the modeling errors. A drawback of all the aforementioned methods is that they require acceleration measurements, which generally introduce high noise. Usually, approaches to finding the contact location (collision isolation) utilize tactile skins as disclosed in publications [2], [11], [10], and [18]. With a suitable tactile skin, the contact location can be found precisely and robustly. However, it is desirable to be able to do so without the need of additional sensors, using only proprioceptive sensing.

Collision identification aims at finding an external contact wrench F_(ext) and an external generalized joint force τ_(ext). External joint torque estimation for serial link robots with a fixed base was proposed in publication [6], which was then extended to and validated for flexible joint robots with the DLR (German Aerospace Center) lightweight robot in publication [3]. This was the first method to simultaneously detect collisions, find the contact location, and estimate the external torques, i.e., solve the first three phases of the collision handling problem. The approach utilizes the decoupling property of a generalized momentum based disturbance observer disclosed in publications [4] and [9], which does not rely on the measurement of accelerations. Contact wrenches are often determined with the help of force/torque sensors. Publication [14] uses a generalized momentum based disturbance observer with directly excluded measured foot forces to estimate only external joint torques resulting from manipulation for the humanoid robot TORO. For contact force estimation contacts at the hands were assumed. In publication [8], the ground contact forces at the feet of a humanoid robot are estimated with an optimal load distribution approach based on desired gross applied force. For the NASA robot “Valkyrie” these are measured with force/torque sensors located in the ankles as disclosed in publication [15].

SUMMARY

It is the task of the invention to provide a more effective detection to the end of identification and isolation of collisions of robots, especially of humanoids.

A first aspect of the invention relates to a method of collision handling for a robot with a kinematic chain structure comprising at least one kinematic chain, wherein the kinematic chain structure includes: a base, links, joints connecting the links, actuators and at least one end-effector, a sensor S_(distal.i) in the most distal link of at least one of the kinematic chains for measuring/estimating force/torque, and sensors S_(i) for measuring/estimating proprioceptive data, wherein the sensors S_(i) are arbitrarily positioned along the kinematic chain structure.

The method according to the first aspect including the following steps:

-   -   providing a model describing the dynamics of the robot;     -   measuring and/or estimating with sensor S_(distal.i)         force/torque F_(ext,S.distal.i) in the most distal link of at         least one of the kinematic chains;     -   measuring and/or estimating with the sensors S_(i)         proprioceptive data: base and robot generalized coordinates q(t)         and their time derivative {dot over (q)}(t), generalized joint         motor forces τ_(m), external forces F_(S), a base orientation         φ_(B)(t) and a base velocity {dot over (x)}(t)_(B);     -   generating an estimate {circumflex over (τ)}_(e) of the         generalized external forces τ_(ext) with a momentum observer,         based on at least one of the proprioceptive data and the model;     -   generating an estimate {umlaut over ({circumflex over (q)})}(t)         of a second derivative of base and robot generalized coordinates         {umlaut over (q)}(t), based on {circumflex over (τ)}_(∈) and         τ_(m);     -   estimating a Cartesian acceleration {umlaut over ({circumflex         over (x)})}_(D) of point D on the kinematic chain structure         based on {umlaut over ({circumflex over (q)})}(t);     -   compensating F_(S) for rigid body dynamics effects based on         {umlaut over ({circumflex over (x)})}_(D) and for gravity         effects to obtain an estimated external wrench {circumflex over         (F)}_(ext,S.i);     -   compensating {circumflex over (τ)}_(∈) for the Jacobian         J_(S.distal.i) ^(T) transformed F_(ext,S.distal.i) to obtain an         estimation {circumflex over (τ)}_(ext,col) of generalized joint         forces originating from unexpected collisions; and     -   detecting a collision based on given thresholds τ_(thresh) and         F_(S.i,thresh) if {circumflex over (τ)}_(ext,col)>τ_(thresh)         and/or if {circumflex over (F)}_(ext,S.i)>F_(S.i,thresh).

On several occasions a running index i is used in the above and the following. The person skilled in the art will apprehend it as a statement to denote a respective element of a plurality of a finite—or possibly in some cases infinite—set, while the number of elements in a finite set can also be “one”. In particular, if i refers to a respective numbering of collisions of the robot with external objects, and if only and for all times i=1 holds, it means that there is only one single collision. If i can be i=1 or i=2, there are two collisions to which reference can be made. The same applies beyond the numbering of collisions to the numbering of sensors and others.

The model describing the dynamics of the robot comprises, in particular, an information about the mass and, in particular, the mass distribution along the kinematic chain structure. From the latter, a moment of inertia of the kinematic chain structure is known as well.

The robot is preferably a humanoid robot, which is preferably modeled as:

$\begin{matrix} {{{\begin{pmatrix} M_{BB} & M_{BJ} \\ M_{JB} & M_{JJ} \end{pmatrix}\begin{pmatrix} {\overset{¨}{q}}_{B} \\ {\overset{¨}{q}}_{J} \end{pmatrix}} + {\begin{pmatrix} {C_{B}\left( \overset{.}{q} \right)} \\ {C_{J}\left( \overset{.}{q} \right)} \end{pmatrix}\begin{pmatrix} q_{B} \\ q_{J} \end{pmatrix}} + \begin{pmatrix} g_{B} \\ g_{J} \end{pmatrix}} = {\begin{pmatrix} 0 \\ \tau_{Jm} \end{pmatrix} - \begin{pmatrix} 0 \\ \tau_{Jf} \end{pmatrix} + \begin{pmatrix} \tau_{Bext} \\ \tau_{Jext} \end{pmatrix}}} & (1) \end{matrix}$ where q_(B)=(r_(b)φ_(B))^(T) and q=(q_(b)q_(J))^(T) denote the base and robot generalized coordinates, consisting of the Cartesian base position r_(B)∈

³ Euler angle base orientation φ_(B)∈

³ and joint angles q_(J) ∈

^(n) ^(J) . Base and joint entries are marked with index “B” and “J”. Further, equation (1) can be written in the more compact form M(q){umlaut over (q)}+C(q,{dot over (q)}){dot over (q)}+g(q)=τ_(m)−τ_(f)+τ_(ext)  (2) where M(q) denotes the mass matrix, C(q, {dot over (q)}) the matrix of centrifugal and Coriolis terms, g(q) the gravity vector, where the dependency on q is left out for brevity in (1) and for sake of brevity q(t) and its time derivatives are shortly written as q and {dot over (q)} and so on. The vectors τ_(m), τ_(f) and τ_(ext) denote the generalized motor joint forces, friction joint forces and external joint forces. Cartesian forces f_(B) and moments m_(B) are projected to the base generalized rotation coordinates with the angular velocity Jacobian J_(ω) with ω_(B)=J_(ω)(φ_(B)){dot over (φ)}_(B). Generalized external forces F_(ext,i) are projected via the corresponding geometric floating base Jacobian J_(C.i) of the point of contact r_(C.i) to the generalized joint forces

$\begin{matrix} {\tau_{{ext},i} = {\begin{pmatrix} \tau_{B,{ext},i} \\ \tau_{J,{ext},i} \end{pmatrix} = {{J_{C.i}^{T}F_{{ext},i}} = {\begin{pmatrix} I_{3} & {{- {S\left( r_{{BC}.i} \right)}}J_{\omega}} & {RJ}_{{JtC}.i} \\ 0 & J_{\omega} & {RJ}_{{JRC}.i} \end{pmatrix}^{T}\begin{pmatrix} f_{{ext},i} \\ m_{{ext},i} \end{pmatrix}}}}} & (3) \end{matrix}$ where J_(JtC.i) and J_(JRC.i) are the corresponding translational and rotational submatrices of the joint Jacobian and R is the rotation matrix from robot base to world frame, cf. publications [14] and [1].

The kinematic chain structure is preferably including joint torque sensing and an arbitrary number of sensors S_(i) for measuring force/torque arbitrarily positioned along the kinematic chain structure. In addition, the base orientation φ_(B) and the generalized base velocity {dot over (x)}_(B) can be measured. Now the general objective is to detect, isolate and identify any collision of an external object with the kinematic chain structure. In this context, collision detection means, in particular, to generate a number of binary signals telling whether a collision is happening or not at a certain topological part of the robot. Isolation denotes to find the contact location r_(C.i) for a collision i. Identification aims at estimating the generalized external joint force τ_(ext) and the external contact wrenches F_(ext,i). In summary, the objective is to find all contact locations, the corresponding contact wrenches and telling which parts of the kinematic chain structure are in collision at the given time.

In particular, for the following measurement quantities, a measured and/or estimated value is provided as follows:

-   -   the base orientation φ_(B)(t) and the base velocity {dot over         (x)}(t)_(B): obtained preferably with a gyroscope and/or a         Kalman estimator;     -   for the links: τ_(m): with a force/torque sensor and F_(ext,i)         with a force/torque sensor; and     -   for the end-effector(s): F_(ext,i): with a force/torque sensor.

The estimate {circumflex over (τ)}_(∈) of the generalized external forces τ_(ext), generated by all contacts, is obtained with the help of a momentum observer and based on at least one of the proprioceptive data and the model. Preferably, a generalized momentum observer from publications [4], [5], and [7] is applied, which is defined as {circumflex over (τ)}_(∈) =K _(O)=(M(q){dot over (q)}−∫ ₀ ^(t)[τ_(m)−γ(q,{dot over (q)})+{circumflex over (τ)}_(∈)]d{tilde over (t)})  (4)

It generates an estimate {circumflex over (τ)}_(∈) of the generalized external forces acting on the kinematic chain structure, where K_(o)=diag{k_(O,i)}>0 is the observer gain matrix and γ(q,{dot over (q)}):=n(q,{dot over (q)})−{dot over (M)}(q){dot over (q)}=g(q)+C(q,{dot over (q)}){dot over (q)}−{dot over (M)}(q){dot over (q)}=g(q)−C ^(T)(q,{dot over (q)}){dot over (q)}  (5) due to the skew-symmetry of {dot over (M)}(q)−2C(q,{dot over (q)}), cf. publication [3]. Under ideal conditions (q, {dot over (q)}, M(q), C(q, {dot over (q)}), g(q) are known exactly), the observer dynamics are decoupled and every component {circumflex over (τ)}_(∈) follows the first order dynamics: K _(O) ⁻¹{dot over ({circumflex over (τ)})}_(∈)+{circumflex over (τ)}_(∈)=τ_(ext)  (6)

Therefore, {circumflex over (τ)}_(∈) is simply a first order filtered version of τ_(ext).

In order to be able to determine a maximum number of contact wrenches and locations, the information of the force/torque sensors from the observed generalized external joint forces {circumflex over (τ)}_(∈) is preferably excluded as shown in publication [21]. Therefore, it is compensated for the dynamic and static forces generated by the inertia attached to each sensor. For this compensation, the acceleration in Cartesian space {umlaut over (x)}_(D) of its center of mass D is required. It is preferably calculated by

$\begin{matrix} {{\overset{¨}{x}}_{D} = {\begin{pmatrix} {\overset{¨}{r}}_{D} \\ {\overset{.}{\omega}}_{D} \end{pmatrix}^{T} = {{J_{D}\overset{¨}{q}} + {{\overset{.}{J}}_{D}\overset{.}{q}}}}} & (7) \end{matrix}$ where J_(D) is the Jacobian of point D. For this, the generalized acceleration {umlaut over (q)} is needed to calculate the Cartesian acceleration. An estimate {umlaut over ({circumflex over (q)})} of {umlaut over (q)} can be obtained from extending the disturbance observer as shown in equation (4). Using its inner state, i.e., the generalized momentum p=M(q){dot over (q)}, it follows for the estimate of its time derivative: {dot over ({circumflex over (q)})}=M(q){umlaut over ({circumflex over (q)})}+{dot over (M)}(q){dot over (q)}=τ _(m)−γ(q,{dot over (q)})+{circumflex over (τ)}∈  (8)

From this, the estimated acceleration follows as: {umlaut over ({circumflex over (q)})}=M(q)⁻¹({dot over ({circumflex over (p)})}−{dot over (M)}(q){dot over (q)})=M(q)⁻¹(τ_(m) −n(q,{dot over (q)})+{circumflex over (τ)}_(∈))  (9)

The dynamics of the acceleration error e={umlaut over (q)}−{umlaut over ({circumflex over (q)})} derived using equation (8):

$\begin{matrix} \begin{matrix} {e = {{{M(q)}^{- 1}\left( {\overset{.}{p} - {{\overset{.}{M}(q)}\overset{.}{q}}} \right)} - {{M(q)}^{- 1}\left( {\hat{\overset{.}{p}} - {{\overset{.}{M}(q)}\overset{.}{q}}} \right)}}} \\ {= {{M(q)}^{- 1}\left( {\tau_{m} - {n\left( {q,\overset{.}{q}} \right)} + \tau_{ext} - \left( {\tau_{m} - {{n\left( {q,\overset{.}{q}} \right)}{\hat{\tau}}_{\epsilon}}} \right)} \right)}} \\ {= {{M(q)}^{- 1}\left( {\tau_{ext} + {\hat{\tau}}_{\epsilon}} \right)}} \end{matrix} & (10) \end{matrix}$

Using the Laplace transform of equations (6) and (10), the following dynamics are obtained:

$\begin{matrix} {e = {{M(q)}^{- 1}\left( {\frac{{sk}_{O,1}^{- 1}\tau_{{ext},1}}{1 + {sk}_{O,1}^{- 1}}\mspace{14mu}\ldots\mspace{14mu}\frac{{sk}_{O,n}^{- 1}\tau_{{ext},n}}{1 + {sk}_{O,n}^{- 1}}} \right)}} & (11) \end{matrix}$

The error dynamics consist of a vector with a linear dynamics triggered by τ_(ext), which is coupled nonlinearly by the inverted mass matrix to the error e. The estimate {umlaut over ({circumflex over (q)})} is preferably used to obtain {umlaut over ({circumflex over (x)})}_(D) according to equation (7) and therefore the external wrench F_(ext), as shown in the following.

The compensation of measured generalized external forces F_(S) for rigid body dynamics effects based on {umlaut over ({circumflex over (x)})}_(D) and for gravity effects to obtain an estimated external wrench {circumflex over (F)}_(ext,S.i) is preferably done as follows:

Considering a free body excerpt from a body abutting on an end-effector, Newton's second law yields for a sensor attached to this body: m _(D) {umlaut over (r)} _(D) =m _(D) g+f _(ext) −f _(S)  (12) wherein m_(D) is the body mass and its inertia tensor is I_(D). There are generally gravitational and dynamic forces measured in the sensor, while the dynamic forces are visible in the left hand side of equation (12). It follows for the sensed external force: f _(ext,S) =f _(S) +m _(D) {umlaut over (r)} _(D) −m _(d) g  (13)

Equation (13) shows that the sensor does not measure the pure external forces only, but in general also forces due to gravity and inertia. Thus, F_(S) is to be corrected by these dynamics in order to obtain the true external wrench. To obtain the external moment, Euler's law of rigid body motion is applied to the center of gravity D of the body: I _(D){dot over (ω)}_(D)+ω_(D) ×I _(d)ω_(D) =m _(ext,E) −m _(S) −r _(DS) ×f _(S) +r _(DE) ×f _(ext)  (14)

This leads to the sensed external moment m _(ext,S) :=m _(ext,E) +r _(SE) ×f _(ext) =m _(S) +I _(D){dot over (ω)}_(D)+ω_(D) ×I _(D)ω_(D) +r _(DS)×(f _(S) −f _(ext))  (15)

Equations (13) and (14) result in the external wrench

$\begin{matrix} {{\overset{\_}{F}}_{{ext},S} = {\begin{pmatrix} {\overset{\_\;}{f}}_{{ext},S} \\ {\overset{\_}{m}\;}_{{ext},S} \end{pmatrix} = {F_{S} + {\begin{pmatrix} {m_{D}I_{3}} & 0 \\ {m_{D}{S\left( r_{SD} \right)}} & I_{D} \end{pmatrix}\left( {\begin{pmatrix} {\overset{¨}{r}}_{D} \\ {\overset{.}{\omega}}_{D} \end{pmatrix} - \begin{pmatrix} g \\ 0 \end{pmatrix}} \right)} + \begin{pmatrix} 0 \\ {\omega_{D} \times I_{D}\omega_{D}} \end{pmatrix}}}} & (16) \end{matrix}$

In equation (16), I₃ denotes the three dimensional unit matrix, g the Cartesian gravity vector, r_(SD) the vector from the center of mass of the inertia attached to the sensor to the sensor and 0 the zero matrix of according size. The S operator denotes the skew-symmetric matrix representing the cross product with its argument. All entities are expressed in the world frame. Using {umlaut over ({circumflex over (q)})} instead of {umlaut over (q)} to computed {umlaut over ({circumflex over (x)})}_(D), the estimated external wrench in point S is preferably obtained as follows:

$\begin{matrix} {{\hat{F}}_{{ext},S} = {F_{S} + {\begin{pmatrix} {m_{D}I_{3}} & 0 \\ {m_{D}{S\left( r_{SD} \right)}} & I_{D} \end{pmatrix}\left( {\begin{pmatrix} {\overset{¨}{r}}_{D} \\ {\overset{.}{\omega}}_{D} \end{pmatrix} - \begin{pmatrix} g \\ 0 \end{pmatrix}} \right)} + \begin{pmatrix} 0 \\ {\omega_{D} \times I_{D}\omega_{D}} \end{pmatrix}}} & (17) \end{matrix}$

If the sensor happens to be in a link not at the distal end of the kinematic chain, the compensation wrenches for each body b following the sensor in the kinematic chain become

$\begin{matrix} {F_{c,b} = {{\begin{pmatrix} {m_{D.b}I_{3}} & 0 \\ {m_{D.b}{S\left( r_{{SD}.b} \right)}} & I_{D.b} \end{pmatrix}\left( {\begin{pmatrix} {\overset{¨}{r}}_{D.b} \\ {\overset{.}{\omega}}_{D} \end{pmatrix} - \begin{pmatrix} g \\ 0 \end{pmatrix}} \right)} + \begin{pmatrix} 0 \\ {\omega_{D.b} \times I_{D.b}\omega_{D.b}} \end{pmatrix}}} & (18) \end{matrix}$ which for all b are summed up for said compensation. This operation corresponds to the Newton-Euler method for calculating multibody dynamics. Therefore, in this case, the external wrench is, in particular, obtained by {circumflex over (F)} _(ext,S) =F _(S)+Σ_(b∈N(b) _(s) ₎ F _(c,b) =:F _(S) +F _(cmp,S)  (19)

In equation (19), N(b_(S)) denotes the set of bodies following in a distal direction limb b_(S), which holds the sensor, in the kinematic chain.

In the following, a preferable way of compensating {circumflex over (τ)}_(∈) for the Jacobian J_(S.distal.i) ^(T) transformed F_(ext,S.distal.i) to obtain an estimation {circumflex over (τ)}_(ext,col) of generalized joint forces originating from unexpected collisions is shown.

In particular, it is considered for the estimation of the generalized contact forces and also collision detection that the observer detects generalized external joint forces originating from all external contacts. As with a humanoid, there are in general always desired contacts (e.g., at the feet or at the hands during manipulation). These contact forces have to be measured with force/torque sensors close to the corresponding end-effectors (e.g. at the wrists and ankles) in order to enable exclusion from the observed generalized joint forces and avoid undesired collision detections (“false alarms”). Preferably, force/torque sensors S_(distal.i) are attached to the kinematic chain structure in the distal links of the arms and legs of an humanoid robot. The generalized external joint forces generated by the external wrenches at the distal links are preferably subtracted from the observed generalized joint forces to obtain an estimate of generalized joint forces originating from unexpected collisions τ_(ext,col): {circumflex over (τ)}_(ext,col)={circumflex over (τ)}_(∈)−Σ_(S.distal) J _(S.distal,i) ^(T) F _(ext,S.distal,i)  (20)

Now that the force/torque sensors are compensated and the desired generalized external forces are excluded from the observed generalized external forces, collision detection is preferably done as follows.

Collision detection is preferably done via thresholding with the generalized joint forces and estimated external wrenches, namely preferably if at least one of the following conditions (being checked element wise) is fulfilled: {circumflex over (τ)}_(ext,col)>τ_(thresh) {circumflex over (F)} _(ext,S.i) >F _(S.i,thresh)  (21)

It is an advantage of the invention that a new real-time method for acceleration estimation and load compensation in humanoid robots is provided for force/torque sensors that are arbitrarily located on the kinematic chain structure of a robot.

According to an embodiment of the invention, compensation wrenches for compensating the external forces F_(S) for rigid body dynamics effects based on {umlaut over ({circumflex over (x)})}_(D) and for gravity effects to obtain an estimated external wrench {circumflex over (F)}_(ext,S.i) are generated recursively if multiple sensors S_(i) are attached to one of the joints or links.

Preferably, based on equation (19), for multiple sensors in a kinematic chain (e.g., in each joint), the compensation wrenches are calculated recursively to avoid multiple calculations according to this embodiment. Preferably, this is conducted according to the following algorithm, written herein in pseudo-code:

function F_(cmp,S)=calculate_F_cmp(S) begin  F_(cmp,S): = 0  for all bodies b directly following S do  {umlaut over (x)}_(D.b) = J_(D.b){umlaut over (q)} + {dot over (J)}_(D.b){dot over (q)}   $F_{{cmp},s}+={{\begin{pmatrix} {m_{D.b}I_{3}} & 0 \\ {m_{D.b}{S\left( r_{{SD}.b} \right)}} & I_{D.b} \end{pmatrix}\left( {{\hat{\overset{¨}{x}}}_{D.b} - \begin{pmatrix} g \\ 0 \end{pmatrix}} \right)} + \begin{pmatrix} 0 \\ {\omega_{D.b} \times I_{D.b}\omega_{D.b}} \end{pmatrix}}$  end  for all T ∈ N (S) do  F_(cmp,T)=ca1cu1ate_F_cmp(T)   $F_{{cmp},S}+={F_{{cmp},T} + \begin{pmatrix} 0 \\ {r_{ST} \times f_{{ext},T}} \end{pmatrix}}$  end end

The algorithm uses the set N(S) which denotes all sensors directly following S in a distal direction. Directly means that there is no other sensor between S and an element of N(S) in the kinematic chain connecting the two.

It is an advantage of this embodiment to avoid multiple calculations.

According to another embodiment of the invention, the method further comprises the step of:

-   -   determine contact locations r_(C) of collisions with the         kinematic chain structure by calculating a line of force action         r_(d)+λf_(i)/∥f_(i)∥ with r_(d)=(S^(T)(f_(i)))^(#) m_(i) of the         collision and by intersecting the line of force action with the         kinematic chain structure geometry.

The information of equation (21) is preferably also used to roughly estimate the contact location. Contacts will always be locatable between the last joint or sensor exceeding the threshold and the next sensor not exceeding it. To gain more information on the link in contact, the external wrenches F_(ext,i) are needed. In the following, a preferable way of obtaining F_(ext,i) and how to use it for collision isolation is shown: Collision isolation cannot be generally handled for the case when external moments act along the robot. For this case, the contact location of an additionally acting contact force cannot be located exactly. Thus, for the isolation case it is assumed herein that no external moments to be acting on the robot (m_(ext,E)=0), which is a realistic assumption for most undesired collision situations. Isolation is done via the following four step approach: a) Isolate the contact link,

b) estimate the external wrench acting on the respective contact link,

c) calculate the line of action of the force estimated and

d) determine the exact contact point by intersecting the line of action with the known kinematic chain structure geometry.

For steps b) and c) two main scenarios have to be distinguished: single contact and multi contact scenarios. The single contact scenario can be handled with joint torque sensing only, while the multi contact scenario sometimes requires additional force/torque sensors in order to distinguish the different contacts.

Regarding step a): The contact link can be found based on the fact that a contact cannot produce torques in joints appearing behind the contact location along the kinematic chain, e.g. a contact at the upper arm cannot produce torques in the wrist. Therefore, the contact link index i can be isolated by i=max{j|τ _(ext,col,j)≠0}  (22) given the convention that joint j connects link j to the preceding links of the robot. Due to the tree structure of a humanoid, this procedure can lead to multiple potential contact links. It has to be noted also that due to modeling and measurement errors, equation (22) is subject to thresholding. Also some forces, e.g. forces parallel to the axis of the joint connected to the link they act on, do not produce torques at this joint. This may lead to erroneous estimation of the contact link. However, this problem can be tackled with a correction step introduced later.

Regarding step b): When the contact link is found, the wrench F_(i) acting on the respective link is preferably estimated as F _(i)=(J _(i) ^(T))^(#)τ_(ext,col)  (23) using the Moore-Penrose pseudo inverse of J_(i) ^(T):(J_(i) ^(T))^(#)

Regarding step c): For a single external wrench F_(ext), acting at the contact location r_(C) the wrench F_(i) may be expressed as

$\begin{matrix} {F_{i} = {{J_{c,i}F_{ext}} = {\begin{pmatrix} I_{3} & 0 \\ {S^{T}\left( r_{c} \right)} & I \end{pmatrix}F_{ext}}}} & (24) \end{matrix}$

Recalling the assumption of the absence of external moments this results in

$\begin{matrix} {F_{i} = {\begin{pmatrix} f_{i} \\ M_{i} \end{pmatrix} = {\begin{pmatrix} f_{ext} \\ {{S\left( r_{C} \right)}f_{ext}} \end{pmatrix} = \begin{pmatrix} f_{i} \\ {{S^{T}\left( f_{i} \right)}r_{c}} \end{pmatrix}}}} & (25) \end{matrix}$

From equation (25), the line of action of the force is derived. It is described by r _(d) +λf _(i) /∥f _(i)∥ for λ∈

with r _(d)=(S ^(T)(f _(i)))^(#) m _(i)  (26)

Regarding step d): Due to the properties of the pseudo inverse and the rank deficit of skew symmetric matrices, r_(d) is the point along the line of action of the force, which lies closest to the origin and therefore not in general identical to r_(C). It is possible to calculate r_(C) by intersecting the line of action of the force with the link geometry of the contact link. If this intersection problem has more than one solution, the one with the smallest parameter λ is chosen, as a pushing force is anticipated, which is most common for unexpected collisions. However, all candidates can be generated and utilized if more sophisticated processing is done at a higher level of abstraction. If the contact link is not estimated correctly, the contact point r_(C) can nonetheless be computed for the single contact case, as the base movement provides sufficient information to determine it. In this case, the line of action may happen to not intersect the estimated contact link. Therefore, the contact point r_(C) is preferably determined correctly by intersecting the line of action also with the subsequent links. For the case of multiple contacts, above method is preferably used in combination with force/torque sensing. Then, for each sensor, a contact in the kinematic chain following the sensor is preferably detected by applying steps 3 and 4 for the compensated (in the sense of equation (19)) wrenches {circumflex over (F)}_(ext,i) of the sensors. In case of more than one sensor and more than one contact in the kinematic chain, the wrenches originating from contacts already measured by sensors closer to the distal end of the kinematic chain have to be subtracted from the measured wrench in order to estimate contacts earlier in the chain correctly.

$\begin{matrix} {{\hat{F}}_{{ext},i} = {{\hat{F}}_{{ext},{Si}} - {\sum_{T \in {N{(S)}}}\left( {{\hat{F}}_{{ext},T} + \begin{pmatrix} 0 \\ {r_{ST} \times {\hat{f}}_{{ext},T}} \end{pmatrix}} \right)}}} & (27) \end{matrix}$

If no force/torque sensors are available, the correct isolation of multiple contacts is only possible if the contact links are estimated correctly and are far enough away from the base, which means that the Jacobians of the contact links together include at least six degree of freedoms per wrench to estimate. For this, the contact wrenches are preferably calculated by stacking the Jacobians together and calculating the according pseudoinverse (F _(i.1) ^(T) . . . F _(i.n) ^(T))^(T)=(J _(i.1) ^(T) . . . J _(i.n) ^(T))^(#)τ_(ext,col)  (28)

In case of a singularity in the Jacobians, additional degree of freedoms can be required to estimate the wrenches correctly. Thereafter, steps c) and d) can be applied to each estimated wrench F_(i.j). This step may be considered a generalization of equation (6) in publication [14].

With this, the contact locations r_(C) are located.

It is an advantage of this embodiment that a novel method for estimating contact location and contact forces in single contact scenarios, in particular, for humanoid robots is provided.

According to another embodiment of the invention, the method further comprises the step of:

-   -   based on the determined contact locations r_(C) determine the         full contact Jacobians J_(C.i)=J_(c,i)J_(i), and     -   determine the external wrenches: (F_(ext,1) ^(T) . . . F_(ext,n)         ^(T))^(T)=(J_(C.1) ^(T) . . . J_(C.n) ^(T))^(#)τ_(ext,col).

Since with the above, the contact locations r_(C) are determined, the full contact Jacobians J _(C.i) =J _(c,i) J _(i)  (29) are preferably computed. Similar to (28) they are preferably used to identify the external wrenches (F _(ext,1) ^(T) . . . F _(ext,n) ^(T))^(T)=(J _(C.1) ^(T) . . . J _(C.n) ^(T))^(#)τ_(ext,col)  (30) For wrenches identified with a force/torque sensor, no action has to be taken in this step, as the corrected wrenches are already the best estimates.

It is an advantage of this embodiment that an extension of the above mentioned invention and its embodiments is provided to multi-contact situations with and without the help of additional force/torque sensors in the kinematic chain.

According to another embodiment of the invention, the method further comprises the step of:

-   -   control the robot dependent on r_(C) and (F_(ext,1) ^(T) . . .         F_(ext,n) ^(T))^(T).

According to another embodiment of the invention, the robot is a humanoid robot.

Another aspect of the invention relates to computer system with a data processing unit, wherein the data processing unit is designed and set up to carry out a method according to one of the preceding claims.

Another aspect of the invention relates to a digital data storage with electronically readable control signals, wherein the control signals can coaction with a programmable computer system, so that a method according to one of the preceding claims is carried out.

Another aspect of the invention relates to a computer program product comprising a program code stored in a machine-readable medium for executing a method according to one of the preceding claims, if the program code is executed on a computer system.

Another aspect of the invention relates to a computer program with program codes for executing a method according to one of the preceding claims, if the computer program runs on a computer system.

Another aspect of the invention relates to a robot with a kinematic chain structure comprising at least one kinematic chain, wherein the kinematic chain structure comprises: a base, links, joints connecting the links, actuators and at least one end-effector, a sensor S_(distal,i) in the most distal link of at least one of the kinematic chains for measuring/estimating force/torque, and sensors S_(i) for measuring/estimating proprioceptive data, wherein the sensors S_(i) are arbitrarily positioned along the kinematic chain structure, and wherein the robot is designed and set up to carry out a method according to the preceding claims.

According to an embodiment of the invention, the robot comprises a data interface with a data network, and wherein the robot is designed and set up to download system-programs for setting up and controlling the robot from the data network.

According to another embodiment of the invention, the robot being designed and set up to download parameters for the system-programs from the data network.

According to another embodiment of the invention, the robot is designed and set up to enter parameters for the system-programs via a local input-interface and/or via a teach-in-process, and wherein the robot is manually guided.

According to another embodiment of the invention the robot is designed and set up such that downloading system-programs and/or respective parameters from the data network is controlled by a remote station, the remote station being part of the data network.

According to another embodiment of the invention, the robot is designed and set up such that system-programs and/or respective parameters locally available at the robot are sent to one or more participants of the data network based on a respective request received from the data network.

According to another embodiment of the invention, the robot is designed and set up such that system-programs with respective parameters available locally at the robot can be started from a remote station, the remote station being part of the data network.

According to another embodiment of the invention, the robot is designed and set up such that the remote station and/or the local input-interface comprises a human-machine-interface HMI designed and set up for entry of system-programs and respective parameters, and/or for selecting system-programs and respective parameters from a multitude system-programs and respective parameters.

According to another embodiment of the invention, the human-machine-interface HMI being designed and set up such, that entries are possible via “drag-and-drop”-entry on a touchscreen, a guided dialogue, a keyboard, a computer-mouse, an haptic interface, a virtual-reality-interface, an augmented reality interface, an acoustic interface, via a body tracking interface, based on electromyographic data, based on electroencephalographic data, via a neuronal interface or a combination thereof.

According to another embodiment of the invention, the human-machine-interface HMI being designed and set up to deliver auditive, visual, haptic, olfactoric, tactile, electrical feedback, or a combination thereof.

The invention is explained above with reference to the aforementioned embodiments. However, it is clear that the invention is not only restricted to these embodiments, but includes all possible embodiments within the spirit and scope of the inventive thought and the patent claims.

The sources of prior art mentioned above and additional sources are the following publications:

-   [1] K. Bouyarmane and A. Kheddar. On the dynamics modeling of     free-floating-base articulated mechanisms and applications to     humanoid whole-body dynamics and control. Humanoids, 2012. -   [2] R. S. Dahiya, P. Mittendorfer, M. Valle, et al. Directions     toward effective utilization of tactile skin: A review. IEEE Sensors     Journal, 2013. -   [3] A. De Luca, A. Albu-Scha{umlaut over ( )}ffer, S. Haddadin,     and G. Hirzinger. Collision detection and safe reaction with the     DLR-III lightweight manipulator arm. In IROS, 2006. -   [4] A. De Luca and R. Mattone. Actuator failure detection and     isolation using generalized momenta. In ICRA, 2003. -   [5] A. De Luca and R. Mattone. An adapt-and-detect actuator fdi     scheme for robot manipulators. In ICRA, 2004. -   [6] A. De Luca and R. Mattone. Sensorless robot collision detection     and hybrid force/motion control. In ICRA, 2005. -   [7] S. Haddadin. Towards Safe Robots. Springer Berlin Heidelberg,     2014. -   [8] S.-H. Hyon, J. Hale, and G. Cheng. Full-body compliant     human-humanoid interaction: Balancing in the presence of unknown     external forces. IEEE Trans. Robot., 2007. -   [9] H.-B. Kuntze, C. Frey, K. Giesen, and G. Milighetti. Fault     tolerant supervisory control of human interactive robots. In IFAC     Workshop on Advanced Control and Diagnosis, 2003. -   [10] V. J. Lumelsky and E. Cheung. Real-time collision avoidance in     tele-operated whole-sensitive robot arm manipulators. IEEE     Transactions on Systems, Man, and Cybernetics, 1993. -   [11] G. D. Maria, C. Natale, and S. Pirozzi. Force/tactile sensor     for robotic applications. Sensors and Actuators A: Physical, 2012. -   [12] S. Morinaga and K. Kosuge. Collision detection system for     manipu-lator based on adaptive impedance control law. In ICRA, 2003. -   [13] Open Source Robotics Foundation. “DRC simulator”,     https://bitbucket.org/osrf/drcsim. [Online], 2015. -   [14] C. Ott, B. Henze, and D. Lee. Kinesthetic teaching of humanoid     motion based on whole-body compliance control with interaction-aware     balancing. In IROS, 2013. -   [15] N. A. Radford, P. Strawser, K. Hambuchen, et al. Valkyrie:     Nasa's first bipedal humanoid robot. Journal of Field Robotics,     2015. -   [16] V. Sotoudehnejad and M. R. Kermani. Velocity-based variable     thresh-olds for improving collision detection in manipulators. In     ICRA, 2014. -   [17] V. Sotoudehnejad, A. Takhmar, M. R. Kermani, and I. G.     Polushin. Counteracting modeling errors for sensitive observer-based     manipula-tor collision detection. In IROS, 2012. -   [18] M. Strohmayr. Artificial Skin in Robotics. PhD thesis,     Karlsruhe Institute of Technology, 2012. -   [19] K. Suita, Y. Yamada, N. Tsuchida, et al. A failure-to-safety     “kyozon” system with simple contact detection and stop capabilities     for safe human-autonomous robot coexistence. In ICRA, 1995. -   [20] S. Takakura, T. Murakami, and K. Ohnishi. An approach to     collision detection and recovery motion in industrial robot. In     IECON, 1989. -   [21] J. Vomdamme, M. Schappler, A. Tödtheide, and S. Haddadin. Soft     robotics for the hydraulic Atlas arms: Joint impedance control with     collision detection and disturbance compensation. In IROS, 2016.     Accepted and publicly available October 2016. Initial submission:     https://www.irt.uni-hannover.de/fileadmininstitut/pdf/tmp/VorndammeSchToeHad2016.pdf. -   [22] Y. Yamada, Y. Hirasawa, S. Huang, et al. Human-robot contact in     the safeguarding space. IEE/ASME Transactions on Mechatronics, 1997.

BRIEF DESCRIPTION OF THE DRAWINGS

In the drawings:

FIG. 1 shows a method for collision handling for a robot according to an embodiment of the invention,

FIG. 2 shows a method for collision handling for a robot according to another embodiment of the invention,

FIG. 3 shows a humanoid robot according to another embodiment of the invention,

FIG. 4 shows a detailed excerpt of the method shown in FIG. 1, and

FIG. 5 shows another explanation of the method of FIG. 2.

DETAILED DESCRIPTION

FIG. 1 shows a method of collision handling for a robot 1 with a kinematic chain structure comprising at least one kinematic chain, wherein the kinematic chain structure includes: a base, links, joints connecting the links, actuators and at least one end-effector, a sensor S_(distal.i) in the most distal link of at least one of the kinematic chains for measuring/estimating force/torque, and sensors S_(i) for measuring/estimating proprioceptive data, wherein the sensors S_(i) are arbitrarily positioned along the kinematic chain structure.

The method according to FIG. 1 includes the following steps:

-   -   providing (S1) a model describing the dynamics of the robot 1;     -   measuring and/or estimating (S2) with sensor S_(distal.i)         force/torque F_(ext,S.distal.i) in the most distal link of at         least one of the kinematic chains;     -   measuring and/or estimating (S3) with the sensors S_(i)         proprioceptive data: base and robot generalized coordinates q(t)         and their time derivative {dot over (q)}(t), generalized joint         motor forces τ_(m), external forces F_(S), a base orientation         φ_(B)(t) and a base velocity {dot over (x)}(t)_(B);     -   generating (S4) an estimate {circumflex over (τ)}_(∈) of the         generalized external forces τ_(ext) with a momentum observer 3         based on at least one of the proprioceptive data and the model;     -   generating (S5) an estimate {umlaut over ({circumflex over         (q)})}(t) of a second derivative of base and robot generalized         coordinates {umlaut over (q)}(t), based on {circumflex over         (τ)}_(∈) and τ_(m);     -   estimating (S6) a Cartesian acceleration {umlaut over         ({circumflex over (x)})}_(D) of a point D on the kinematic chain         structure based on {umlaut over ({circumflex over (q)})}(t);     -   compensating (S7) F_(S) for rigid body dynamics effects based on         {umlaut over ({circumflex over (x)})}_(D) and for gravity         effects to obtain an estimated external wrench {circumflex over         (F)}_(ext,S.i);     -   compensating (S8) {circumflex over (τ)}_(∈) for the Jacobian         J_(S.distal.i) ^(T) transformed F_(ext,S.distal.i) to obtain an         estimation {circumflex over (τ)}_(ext,col) of generalized joint         forces originating from unexpected collisions; and     -   detecting (S9) a collision based on given thresholds τ_(thresh)         and F_(S.i,thresh) if {circumflex over (τ)}_(ext,col)>τ_(thresh)         and/or if {circumflex over (F)}_(ext,S.i)>F_(S.i,thresh).

FIG. 2 shows a method of collision handling for a robot 1 with a kinematic chain structure comprising at least one kinematic chain, wherein the kinematic chain structure comprises: a base, links, joints connecting the links, actuators and at least one end-effector, a sensor S_(distal.i) in the most distal link of at least one of the kinematic chains for measuring/estimating force/torque, and sensors S_(i) for measuring/estimating proprioceptive data, wherein the sensors S_(i) are arbitrarily positioned along the kinematic chain structure.

The method according to FIG. 2 includes the following steps:

-   -   providing S1 a model describing the dynamics of the robot 1;     -   measuring and/or estimating (S2) with sensor S_(distal.i)         force/torque F_(ext,S.distal.i) in the most distal link of at         least one of the kinematic chains;     -   measuring and/or estimating S3 with the sensors S_(i)         proprioceptive data: base and robot generalized coordinates q(t)         and their time derivative {dot over (q)}(t), generalized joint         motor forces τ_(m), external forces F_(S), a base orientation         φ_(B)(t) and a base velocity {dot over (x)}(t)_(B);     -   generating (S4) an estimate {circumflex over (τ)}_(∈) of the         generalized external forces τ_(ext) with a momentum observer 3         based on at least one of the proprioceptive data and the model;     -   generating (S5) an estimate {umlaut over ({circumflex over         (q)})}(t) of a second derivative of base and robot generalized         coordinates {umlaut over (q)}(t), based on {circumflex over         (τ)}_(∈) and τ_(m);     -   estimating (S6) a Cartesian acceleration {umlaut over         ({circumflex over (x)})}_(D) of a point D on the kinematic chain         structure based on {umlaut over ({circumflex over (q)})}(t);     -   compensating (S7) F_(S) for rigid body dynamics effects based on         {umlaut over ({circumflex over (x)})}_(D) and for gravity         effects to obtain an estimated external wrench {circumflex over         (F)}_(ext,S.i);     -   compensating (S8) {circumflex over (τ)}_(∈) for the Jacobian         J_(S.distal.i) ^(T) transformed F_(ext,S.distal.i) to obtain an         estimation {circumflex over (τ)}_(ext,col) of generalized joint         forces originating from unexpected collisions;     -   detecting (S9) a collision based on given thresholds τ_(thresh)         and F_(S.i,thresh) if {circumflex over (τ)}_(ext,col)>τ_(thresh)         and/or if {circumflex over (F)}_(ext,S.i)>F_(S.i,thresh);     -   determining (S10) contact locations r_(C) of collisions with the         kinematic chain structure by calculating a line of force action         r_(d)+λf_(i)/∥f_(i)∥ with r_(d)=(S^(T)(f_(i)))^(#) m_(i) of the         collision and by intersecting the line of force action with the         kinematic chain structure geometry;     -   based on the determined contact locations r_(C) determining         (S11) the full contact Jacobians J_(C.i)=J_(c,i)J_(i);     -   determining (S12) the external wrenches: (F_(ext,1) ^(T) . . .         F_(ext,n) ^(T))^(T)=(J_(C.1) ^(T) . . . J_(C.n)         ^(T))^(#)τ_(ext,col); and     -   controlling (S13) the robot 1 dependent on r_(C) and (F_(ext,1)         ^(T), . . . F_(ext,n) ^(T))^(T).

FIG. 3 shows a humanoid robot 1 with a base B and arms and legs as kinematic chains, wherein a base orientation is denoted as φ_(B)(t) and a base velocity is denoted as {dot over (x)}(t)_(B). The humanoid robot 1 is in a multiple contact situation. Generalized external forces F_(ext,i) are acting all over its structure. Forces on the feet originate from locomotion, forces on the hands originate from manipulation. Other external forces are caused by unwanted collisions. In addition, a number of force/torque sensors S_(i) (five in the case of FIG. 3) are distributed arbitrarily along the kinematic chain structure of the robot 1. Two contacts are detected at the right arm. One by sensor S₃ and one by sensor S₁, as long as one contact is behind S₁ and the other between S₃ and S. As this is the case for F_(ext,2) and F_(ext,5) these two wrenches are estimated correctly. (Otherwise, the preferred proceeding is shown with equation (28)).

FIG. 4 shows a detailed excerpt of the method shown in FIG. 1. Exclusion of external wrenches at the distal links F_(ext,S.distal.i) measured by force/torque sensors S_(i) from the observed generalized joint forces of equation (4) is done with the upper general description. These wrenches are therefore compensated according to equation (19) from the upper general description and allow for the mapping of F_(S.distal.i) to F_(ext,S.distal.i) with the load compenstion symbolized by a rectangle receiving F_(S.distal.i) and {umlaut over ({circumflex over (q)})},{umlaut over ({circumflex over (q)})} from the observer 3. All other notations and steps are described under the description corresponding to FIG. 1. The upper right dotted block outputting F_(S.distal.i) is a filter.

FIG. 5 shows a different view of the steps explained under FIG. 2 and shows an overview of the collision detection, isolation, and identification algorithm. Hence, all steps S1 . . . S13 referred to under the description of FIG. 2 can also be applied to FIG. 5. Moreover, the general description from above, in particular, equations (17) to (19) are applicable. The more sensed or estimated or generated information is used, the more information can be obtained from the collision detection. If the collision detection is based on τ_(ext,col) only, the contact cannot be fully located. If F_(ext,S.i) is used in addition, the contact can be located to the parts of the robot lying between the detecting and the following sensors. If the full F_(ext,S.i) are available, collision detection can be done on a per link basis.

LIST OF REFERENCE NUMERALS

-   1 robot -   3 observer -   S1 provide -   S2 measure and/or estimate -   S3 measure and/or estimate -   S4 generate -   S5 generate -   S6 estimate -   S7 compensate -   S8 compensate -   S9 detect -   S10 determine -   S11 determine -   S12 determine -   S13 control 

The invention claimed is:
 1. A method of collision handling for a robot with a kinematic chain structure comprising at least one kinematic chain, wherein the kinematic chain structure comprises a base, links, joints connecting the links, actuators and at least one end-effector, a sensor S_(distal.i) in a most distal link of at least one of the kinematic chains for measuring/estimating force/torque, and sensors S_(i) for measuring/estimating proprioceptive data, wherein the sensors S_(i) are arbitrarily positioned along the kinematic chain structure, the method comprising: providing a model describing dynamics of the robot; measuring and/or estimating with sensor S_(distal.i) force or torque F_(ext,S.distal.i) in the most distal link of at least one of the kinematic chains; measuring and/or estimating with the sensors S_(i) proprioceptive data: base and robot generalized coordinates q(t) and their time derivative {dot over (q)}(t), generalized joint motor forces τ_(m), external forces F_(S), a base orientation φ_(B)(t) and a base velocity {dot over (x)}(t)_(B); generating an estimate {circumflex over (τ)}_(∈) of generalized external forces τ_(ext) with a momentum observer based on at least one of the proprioceptive data and the model; generating an estimate {umlaut over ({circumflex over (q)})}(t) of a second derivative of base and robot generalized coordinates {umlaut over (q)}(t), based on {circumflex over (τ)}_(∈) and τ_(m); estimating a Cartesian acceleration {umlaut over ({circumflex over (x)})}_(D) of a point D on the kinematic chain structure based on {umlaut over ({circumflex over (q)})}(t); compensating F_(S) for rigid body dynamics effects based on {umlaut over ({circumflex over (x)})}_(D) and for gravity effects to obtain an estimated external wrench {circumflex over (F)}_(ext,S.i); compensating {circumflex over (τ)}_(∈) for a Jacobian J_(S.distal.i) ^(T) transformed F_(ext,S.distal.i) to obtain an estimation {circumflex over (τ)}_(ext,col) of generalized joint forces originating from unexpected collisions; and detecting a collision based on given thresholds τ_(thresh) and F_(S.i,thresh) if τ_(ext,col)>τ_(thresh) and/or if {circumflex over (F)}_(ext,S.i)>F_(S.i,thresh).
 2. The method according to claim 1, further comprising generating recursively compensation wrenches for compensating the external forces F_(S) for rigid body dynamics effects based on {umlaut over ({circumflex over (x)})}_(D) and for gravity effects to obtain an estimated external wrench {circumflex over (F)}_(ext,S.i), if multiple sensors S are attached to one of the joints or links.
 3. The method according to claim 1, further comprising determining contact locations r_(C) of collisions with the kinematic chain structure by calculating a line of force action r_(d)+λf_(i)/∥f_(i)∥ with r_(d)=(S^(T) (f_(i)))^(#)m_(i) of the collision and by intersecting the line of force action with the kinematic chain structure geometry.
 4. The method according to claim 3, further comprising: determining full contact Jacobians J_(C.i)=J_(c,i)J_(i) based on the determined contact locations r_(C); and determining the external wrenches (F_(ext,1) ^(T) . . . F_(ext,n) ^(T))=(J_(C.1) ^(T) . . . J_(C.n) ^(T))^(#)τ_(ext,col).
 5. The method according to claim 4, further comprising controlling the robot dependent on r_(C) and (F_(ext,1) ^(T) . . . F_(ext,n) ^(T))^(T).
 6. The method according to claim 1, wherein the robot is a humanoid robot.
 7. A robot capable of collision handling, the robot comprising a kinematic chain structure comprising at least one kinematic chain, wherein the kinematic chain structure comprises a base, links, joints connecting the links, actuators and at least one end-effector, a sensor S_(distal.i) in a most distal link of at least one of the kinematic chains for measuring/estimating force/torque, and sensors S_(i) for measuring/estimating proprioceptive data, wherein the sensors S_(i) are arbitrarily positioned along the kinematic chain structure, the robot designed and set up to: provide a model describing dynamics of the robot; measure and/or estimate with sensor S_(distal.i) force or torque F_(ext,S.distal.i) in the most distal link of at least one of the kinematic chains; measure and/or estimate with the sensors S_(i) proprioceptive data: base and robot generalized coordinates q(t) and their time derivative {dot over (q)}(t), generalized joint motor forces τ_(m), external forces F_(S), a base orientation φ_(B)(t) and a base velocity {dot over (x)}(t)_(B); generate an estimate {circumflex over (τ)}_(∈) of generalized external forces τ_(ext) with a momentum observer based on at least one of the proprioceptive data and the model; generate an estimate {umlaut over ({circumflex over (q)})}(t) of a second derivative of base and robot generalized coordinates {umlaut over (q)}(t), based on {circumflex over (τ)}_(∈) and τ_(m); estimate a Cartesian acceleration {umlaut over ({circumflex over (x)})}_(D) of a point D on the kinematic chain structure based on {umlaut over ({circumflex over (q)})}(t); compensate F_(S) for rigid body dynamics effects based on {umlaut over ({circumflex over (x)})}_(D) and for gravity effects to obtain an estimated external wrench {circumflex over (F)}_(ext,S.i); compensate {circumflex over (τ)}_(∈) for a Jacobian J_(S.distal.i) ^(T) transformed F_(ext,S.distal.i) to obtain an estimation {circumflex over (τ)}_(ext,col) of generalized joint forces originating from unexpected collisions; and detect a collision based on given thresholds τ_(thresh) and F_(S.i,thresh) if {circumflex over (τ)}_(ext,col)>τ_(thresh) and/or if {circumflex over (F)}_(ext,S.i)>F_(S.i,thresh).
 8. The robot according to claim 7, wherein the robot comprises a data interface with a data network, and wherein the robot is designed and set up to download system programs for setting up and controlling the robot from the data network.
 9. The robot according to claim 7, wherein the robot is designed and set up to download parameters for the system programs from the data network.
 10. The robot according to claim 7, wherein the robot is designed and set up to enter parameters for the system programs via a local input interface and/or via a teach-in process, and wherein the robot is manually guided.
 11. The robot according to claim 7, wherein the robot is designed and set up such that downloading system programs and/or respective parameters from the data network is controlled by a remote station, the remote station being part of the data network.
 12. The robot according to claim 7, wherein the robot is designed and set up such that system programs and/or respective parameters locally available at the robot are sent to one or more participants of the data network based on a respective request received from the data network.
 13. The robot according to claim 7, wherein the robot is designed and set up such that system programs with respective parameters available locally at the robot are capable of being started from a remote station, the remote station being part of the data network.
 14. The robot according to claim 7, wherein the robot is designed and set up such that the remote station and/or the local input interface comprises a human-machine interface HMI designed and set up for entry of system programs and respective parameters, and/or for selecting system programs and respective parameters from a multitude of system programs and respective parameters.
 15. The robot according to claim 14, wherein the human-machine interface HMI is designed and set up such that entries are possible via drag-and-drop entry on a touchscreen, a guided dialogue, a keyboard, a computer-mouse, a haptic interface, a virtual-reality interface, an augmented-reality interface, an acoustic interface, via a body tracking interface, based on electromyographic data, based on electroencephalographic data, via a neuronal interface, or a combination thereof.
 16. The robot according to claim 14, wherein the human-machine interface HMI is designed and set up to deliver additive, visual, haptic, olfactory, tactile, electrical feedback, or a combination thereof.
 17. The robot according to claim 7, further designed and set up to generate recursively compensation wrenches for compensating the external forces F_(S) for rigid body dynamics effects based on {umlaut over ({circumflex over (x)})}_(D) and for gravity effects to obtain an estimated external wrench {circumflex over (F)}_(ext,S.i), if multiple sensors S are attached to one of the joints or links.
 18. The robot according to claim 7, further designed and set up to determine contact locations r_(C) of collisions with the kinematic chain structure by calculating a line of force action r_(d)+λf_(i)/∥f_(i)∥ with r_(d)=(S^(T) (f_(i)))^(#)m_(i) of the collision and by intersecting the line of force action with the kinematic chain structure geometry.
 19. The robot according to claim 18, further designed and set up to: determine full contact Jacobians J_(C.i)=J_(c,i)J_(i) based on the determined contact locations r_(C); and determine the external wrenches (F_(ext,1) ^(T) . . . F_(ext,n) ^(T))^(T)=(J_(C.1) ^(T) . . . J_(C.n) ^(T))^(#)τ_(ext,col).
 20. The robot according to claim 18, further designed and set up to control the robot dependent on r_(C) and (F_(ext,1) ^(T) . . . F_(ext,n) ^(T))^(T).
 21. A system for collision handling of a robot, the robot comprising a kinematic chain structure comprising at least one kinematic chain, wherein the kinematic chain structure comprises a base, links, joints connecting the links, actuators and at least one end-effector, a sensor S_(distal.i) in a most distal link of at least one of the kinematic chains for measuring/estimating force/torque, and sensors S_(i) for measuring/estimating proprioceptive data, wherein the sensors S_(i) are arbitrarily positioned along the kinematic chain structure, the system comprising: a data processing device; and a memory storing instructions that, when executed by the data processing device, cause the data processing device to perform operations comprising: providing a model describing dynamics of the robot; measuring and/or estimating with sensor S_(distal.i) force or torque F_(ext,S.distal.i) in the most distal link of at least one of the kinematic chains; measuring and/or estimating with the sensors S_(i) proprioceptive data: base and robot generalized coordinates q(t) and their time derivative {dot over (q)}(t), generalized joint motor forces τ_(m), external forces F_(S), a base orientation φ_(B) (t) and a base velocity {dot over (x)}(t)_(B); generating an estimate {circumflex over (τ)}_(∈) of generalized external forces τ_(ext) with a momentum observer based on at least one of the proprioceptive data and the model; generating an estimate {umlaut over ({circumflex over (q)})}(t) of a second derivative of base and robot generalized coordinates {umlaut over (q)}(t), based on {circumflex over (τ)}_(∈) and τ_(m); estimating a Cartesian acceleration {umlaut over ({circumflex over (x)})}_(D) of a point D on the kinematic chain structure based on {umlaut over ({circumflex over (q)})}(t); compensating F_(S) for rigid body dynamics effects based on {umlaut over ({circumflex over (x)})}_(D) and for gravity effects to obtain an estimated external wrench {circumflex over (F)}_(ext,S.i); compensating {circumflex over (τ)}_(∈) for a Jacobian J_(S.distal.i) ^(T) transformed F_(ext,S.distal.i) to obtain an estimation {circumflex over (τ)}_(ext,col) of generalized joint forces originating from unexpected collisions; and detecting a collision based on given thresholds τ_(thresh) and F_(S.i,thresh) if {circumflex over (τ)}_(ext,col)>τ_(thresh) and/or if {circumflex over (F)}_(ext,S.i)>F_(S.i,thresh).
 22. A non-transitory storage medium storing instructions for collision handling of a robot, the robot comprising a kinematic chain structure comprising at least one kinematic chain, wherein the kinematic chain structure comprises a base, links, joints connecting the links, actuators and at least one end-effector, a sensor S_(distal.i) in a most distal link of at least one of the kinematic chains for measuring/estimating force/torque, and sensors S_(i) for measuring/estimating proprioceptive data, wherein the sensors S_(i) are arbitrarily positioned along the kinematic chain structure, the instructions when executed by a data processing device cause the data processing device to perform operations comprising: providing a model describing dynamics of the robot; measuring and/or estimating with sensor S_(distal.i) force or torque F_(ext,S.distal.i) in the most distal link of at least one of the kinematic chains; measuring and/or estimating with the sensors S_(i) proprioceptive data: base and robot generalized coordinates q(t) and their time derivative {dot over (q)}(t), generalized joint motor forces τ_(m), external forces F_(S), a base orientation φ_(B) (t) and a base velocity {dot over (x)}(t)_(B); generating an estimate {circumflex over (τ)}_(∈) of generalized external forces τ_(ext) with a momentum observer based on at least one of the proprioceptive data and the model; generating an estimate {umlaut over ({circumflex over (q)})}(t) of a second derivative of base and robot generalized coordinates {umlaut over (q)}(t), based on {circumflex over (τ)}_(∈) and τ_(m); estimating a Cartesian acceleration {umlaut over ({circumflex over (x)})}_(D) of a point D on the kinematic chain structure based on {umlaut over ({circumflex over (q)})}(t); compensating F_(S) for rigid body dynamics effects based on {umlaut over ({circumflex over (x)})}_(D) and for gravity effects to obtain an estimated external wrench {circumflex over (F)}_(ext,S.i); compensating {circumflex over (τ)}_(∈) for a Jacobian J_(S.distal.i) ^(T) transformed F_(ext,S.distal.i) to obtain an estimation {circumflex over (τ)}_(ext,col) of generalized joint forces originating from unexpected collisions; and detecting a collision based on given thresholds τ_(thresh) and F_(S.i,thresh) if {circumflex over (τ)}_(ext,col)>τ_(thresh) and/or if {circumflex over (F)}_(ext,S.i)>F_(S.i,thresh). 